// var n;
// exports.LogMgr = void 0;
// var $gameConfig = require("./GameConfig");
// var c = (function (e) {
//     function t() {
//         var t = (null !== e && e.apply(this, arguments)) || this;
//         t._tag = "[game-logger]";
//         return t;
//     }
//     __extends(t, e);
//     t.prototype.debug = function () {
//         var e;
//         var t = [];
//         for (var o = 0; o < arguments.length; o++) {
//             t[o] = arguments[o];
//         }
//         if (!(null !== (e = $gameConfig.default.appConfig) && void 0 !== e && e.Publish)) {
//             console.log.apply(console, __spreadArrays([this._tag], t));
//         }
//     };
//     t.prototype.info = function () {
//         var e = [];
//         for (var t = 0; t < arguments.length; t++) {
//             e[t] = arguments[t];
//         }
//         console.info.apply(console, __spreadArrays([this._tag], e));
//     };
//     t.prototype.warn = function () {
//         var e = [];
//         for (var t = 0; t < arguments.length; t++) {
//             e[t] = arguments[t];
//         }
//         console.warn.apply(console, __spreadArrays([this._tag], e));
//     };
//     t.prototype.error = function () {
//         var e = [];
//         for (var t = 0; t < arguments.length; t++) {
//             e[t] = arguments[t];
//         }
//         console.error.apply(console, __spreadArrays([this._tag], e));
//     };
//     return t;
// })(require("./SingletonManager").SingletonMgr);
// exports.LogMgr = c.getInstance();

import { SingletonBase } from './SingletonManager';
import GameConfig from './GameConfig';

/**
 * 建议类名：LoggerManager
 * 日志管理器类，继承自 SingletonMgr，用于处理不同级别的日志输出
 */
class LogManager extends SingletonBase {
    // 日志标记，用于标识日志输出来源
    private _logTag: string = "[game-logger]";

    /**
     * 建议方法名：logDebug
     * 输出调试级别的日志
     * @param messages 
     */
    debug(...messages: any[]): void {
        if (!GameConfig.appConfig?.Publish) {
            console.log(this._logTag, ...messages);
        }
    }

    /**
     * 建议方法名：logInfo
     * 输出信息级别的日志
     * @param messages 
     */
    info(...messages: any[]): void {
        console.info(this._logTag, ...messages);
    }

    /**
     * 建议方法名：logWarn
     * 输出警告级别的日志
     * @param messages 
     */
    warn(...messages: any[]): void {
        console.warn(this._logTag, ...messages);
    }

    /**
     * 建议方法名：logError
     * 输出错误级别的日志
     * @param messages 
     */
    error(...messages: any[]): void {
        console.error(this._logTag, ...messages);
    }
}

// 导出 LogManager 的单例实例
export const LogMgr = LogManager.getInstance();